package com.dog.account.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dog.account.entity.Account;

import java.math.BigDecimal;

/**
 * 订单mapper
 *
 * @author 郭鲁政
 */
public interface AccountMapper extends BaseMapper<Account> {
    /**
     * 用户减钱
     *
     * @param userId 用户ID
     * @param money  扣掉的钱
     */
    void decrease(Long userId, BigDecimal money);

    /**
     * 根据ID查询账户
     * @param userId 用户ID
     * @return 返回对象
     */
    Account selectByUserId(Long userId);
    /**
     * 将剩余的冻结
     * @param userId 用户ID
     * @param money 冻结金额
     */
    void updateResidueToFrozen(Long userId, BigDecimal money);

    /**
     * 冻结便已使用
     * @param userId 用户ID
     * @param money 使用冻结金额
     */
    void updateFrozenToUsed(Long userId, BigDecimal money);

    /**
     * 事务回滚 冻结变可用
     * @param userId 用户ID
     * @param money 解除冻结金额
     */
    void updateFrozenToResidue(Long userId, BigDecimal money);
}
